﻿Imports System.Text

Public Class frmPapelMoeda
    Inherits formPadrao


    Dim Sep As Char = ","
    Dim Nombre As Double
    Public WithEvents ucPreambulo As New ucPreambulo
    Private nomeDiretorio As String = Nothing
    Public WithEvents btnLimpar As System.Windows.Forms.Button
    Private registro As New registroVO
    Private mensagem As String
    Private erroNivel As Integer = 0
    Private regInserido As New registroVO
    Public ehFalso As Boolean
    Private haFalso As Boolean = False


    Public Property getUcPreambulo() As ucPreambulo
        Get
            Return ucPreambulo
        End Get

        Set(ByVal value As ucPreambulo)
            ucPreambulo = value
        End Set
    End Property


    Public Sub New()
        ' This call is required by the designer.
        InitializeComponent()
        pnlDados.Controls.Add(ucPreambulo)
        If Not DesignMode Then
            Sep = Application.CurrentCulture.NumberFormat.NumberDecimalSeparator
            pnlDados.AutoSize = True
        End If
    End Sub

    Private Sub TextboxNumeric_KeyPress(ByVal sender As Object, ByVal e As KeyPressEventArgs)
        Dim nonNumberEntered As Boolean
        nonNumberEntered = True

        If (e.KeyChar >= Convert.ToChar(48) AndAlso e.KeyChar <= Convert.ToChar(57)) OrElse e.KeyChar = Convert.ToChar(8) OrElse e.KeyChar = Convert.ToChar(44) Then
            nonNumberEntered = False
        End If
        If nonNumberEntered = True Then
            e.Handled = True
        Else
            e.Handled = False
        End If
    End Sub


    Private Sub frmAvaliacao_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Try
            Me.WindowState = FormWindowState.Maximized
            generica.redimensionaControle(pnlDados)
            ucPreambulo.ucPerito.Enabled = True
            ucPreambulo.selecionaIdTipoPericia = 3

            ucPreambulo.selecionaIdNatureza = ucPreambulo.ID_NATUREZA

            ucPreambulo.pnlNatureza.Enabled = False
            Me.ControlBox = False
            ucPreambulo.getVitima = "A fé pública"
            ucPreambulo.lblTitulo.Text = "ANÁLISE DOCUMENTOSCÓPICA DE CÉDULA NACIONAL"
           
        Catch ex As Exception
            generica.gravaErro(ex)
        End Try
    End Sub
    '--------------------------------------------------------------------------------------------------------------------------------
    ' FUNÇÃO QUE IRÁ GERAR O LAUDO
    '--------------------------------------------------------------------------------------------------------------------------------
    Private Sub geraLaudo()

        Dim regBO As New registroBO
        generica.tempo = Now
        Dim oWordTemp As New WordAppl
        Dim registroBo As New registroBO

        '-----------------------------------------------------------------------------------------
        ' ABRE O ARQUIVO WORD
        '-----------------------------------------------------------------------------------------

        If registroGlobal.registroPincipal.ID_REGISTRO > 0 Or ucPreambulo.ehNovo Then

            pb.zeraContador()
            pb.stepBarra(10)
            pb.Visible = True
            pb.stepBarra(10, "Verificando a integridade dos dados")

            '-----------------------------------------------------------------------------------------
            ' GRAVA REGISTRO NA BASE DE DADOS
            '-----------------------------------------------------------------------------------------
            pb.stepBarra(10)
            Try
                If generica.gravaBanco Then

                    '------------------------------------------------------------------------------------
                    ' VERFICA SE É UM NOVO REGISTRO OU SE É UM REGISTRO JÁ ARMAZENADO NA BASE DE DADOS
                    '------------------------------------------------------------------------------------
                    pb.stepBarra(10, "Inserindo dados tabela pontuação")
                    Dim textoProva As String = String.Empty
                    Dim provas As New StringBuilder
                    Dim last As Integer = 1


                    For Each linha As DataGridViewRow In gridCedulas.Rows
                        provas.Append(linha.Cells(0).Value).Append(" ").Append(linha.Cells(2).Value)
                        If Not gridCedulas.Rows.Count = last Then
                            provas.Append(" + ")
                        End If
                        last = last + 1
                    Next

                    If provas.ToString.Length > 250 Then
                        textoProva = provas.ToString.Substring(0, 250)
                    Else
                        textoProva = provas.ToString
                    End If

                    Dim registroGravado As Integer

                    If registroGlobal.registroPincipal.ID_REGISTRO > 0 And registroGlobal.registroPincipal.GEROULAUDO = False Then
                        '-----------------------------------------------------------------------------------------
                        nomeDiretorio = generica.retornaNomeDiretorio(ucPreambulo.getAno, _
                                                                  ucPreambulo.getNumeroLaudo, "AUTENTICIDADE CEDULA ", ucPreambulo.getIndiciado, ucPreambulo.getVitima)
                        '-----------------------------------------------------------------------------------------
                        registroGravado = regBO.updateRegistro(registroGlobal.registroPincipal, _
                                                              textoProva, ucPreambulo.getIdPeritoSelecionado, _
                                                               nomeDiretorio, ucPreambulo)
                        pb.stepBarra(10, "Gravando o registro na base de dados")
                        mensagem = (" O laudo n°" & registroGravado & " foi atualizado com sucesso na base de dados. Clique no ícone do WORD para visualizar o laudo.")
                        registroGlobal.registroPincipal = registroBo.getRegistroSimplificado(registroGravado, ucPreambulo.getAno)
                    Else

                        Dim reg As New registroVO

                        Dim ultimo As Integer = regBO.getUltimoRegistro
                        Dim registroTemporario As Integer = 0
                        If ultimo <> ucPreambulo.getNumeroLaudo Then
                            registroTemporario = ucPreambulo.getNumeroLaudo
                            ucPreambulo.getNumeroLaudo = ultimo
                        End If

                        '-----------------------------------------------------------------------------------------
                        nomeDiretorio = generica.retornaNomeDiretorio(ucPreambulo.getAno, _
                                                                  ucPreambulo.getNumeroLaudo, "AUTENTICIDADE CEDULA ", ucPreambulo.getIndiciado, ucPreambulo.getVitima)
                        '-----------------------------------------------------------------------------------------

                        reg = generica.populaRegistro(ucPreambulo, generica.retornaNomeArquivoCompleto(nomeDiretorio & ".doc", nomeDiretorio), textoProva)
                        registroGravado = regBO.insereRegistro(reg)
                        registroGlobal.registroPincipal = registroBo.getRegistroSimplificado(registroGravado, ucPreambulo.getAno)
                        If registroTemporario = 0 Then
                            mensagem = (" O laudo n°" & registroGlobal.registroPincipal.NUM_REGISTRO & " foi inserido com sucesso na base de dados. Clique no ícone do WORD para visualizar o laudo.")
                        Else
                            mensagem = (" O laudo n°" & ultimo & " foi inserido com sucesso na base de dados. O laudo não foi gravado com o número inicial " & registroTemporario & " pelo fato de outro usuário ter inserido este número de laudo no banco de dados. Clique no ícone do WORD para visualizar o laudo.")
                        End If
                        pb.stepBarra(10)
                    End If


                    '------------------------------------------------------------------------------------
                    ' INSERE DADOS NA TABELA PONTUACAO
                    '------------------------------------------------------------------------------------
                    Dim pontuacaobo As New pontuacaoBO
                    Dim pontuacao As New pontuacaoVO
                    Dim i As Integer

                    If ucPreambulo.ehNovo Then
                        With pontuacao
                            .USUARIO = New usuarioVO With {.ID_USUARIO = ucPreambulo.getIdPeritoSelecionado}
                            .REGISTRO = New registroVO With {.ID_REGISTRO = registroGlobal.registroPincipal.ID_REGISTRO}
                            .PONTUACAO = registroGlobal.registroPincipal.NATUREZA.PONTOS_ATENDIMENTO
                            .TIPO_OCORRENCIA = "ATENDIMENTO"
                            .DATA_ALTERACAO = Nothing
                        End With

                        i = pontuacaobo.inserePontuacao(pontuacao)

                    Else
                        i = pontuacaobo.upDatePontuacao(ucPreambulo.getIdPeritoSelecionado, registroGlobal.registroPincipal)
                    End If

                Else
                    mensagem = ("O sistema está configurado para não gravar registros na base de dados do sistema de registro eletrônico. Para habilitar, clique em configurações > Configurar aplicação e marque a opção <<SIM>>>. Apenas o laudo de n° " & ucPreambulo.getNumeroLaudo & " será gerado. Clique no ícono do WORD para visualizar o documento.")
                End If
                '-------------------------------------------------------------------------------------
                ' INSERE DADOS ITENS DA TABELA NA BASE LOCAL
                '-------------------------------------------------------------------------------------


            Catch ex As Exception
                habilita(False, , False)
                generica.encerraProcessosWord()
                generica.gravaErro(ex)
                erroNivel = 1
                Exit Sub
            End Try

            Try
                pb.stepBarra(10, "Criando o diretório no qual o arquivo ficará armazenado")
                Dim diretorio As String = System.Configuration.ConfigurationManager.AppSettings("dirTemplateword")
                oWordTemp.OpenModelo("cedula.doc")
                oWordTemp.SaveAs(nomeDiretorio, nomeDiretorio & ".doc")
                oWordTemp.Quit()
                oWordTemp = Nothing


                '------------------------------------------------------------------------------------------------
                ' CRIA O PREMABULO
                '------------------------------------------------------------------------------------------------
                Dim oWord As New WordAppl
                oWord.Open(nomeDiretorio, nomeDiretorio & ".doc")
                oWord.criaPreambulo(ucPreambulo)
                '------------------------------------------------------------------------------------------------
                ' POPULA DOCUMENTO WORD
                '------------------------------------------------------------------------------------------------

                pb.stepBarra(10, "Inserindo dados do resultado do exame")
                'oWord.insereTabelaPapelMoeda(gridCedulas, 2, IIf(rdbFalso.Checked, True, False))


                For Each row As DataGridViewRow In gridCedulas.Rows
                    If Not CBool(row.Cells(5).Value) Then
                        haFalso = True
                        Exit For
                    End If
                Next




                oWord.insereDadosDrogas(gridCedulas, 2, False, haFalso)
                '------------------------------------------------------------------------------------------------
                ' VERIFICA SE O EXAME DEU POSITIVO
                '------------------------------------------------------------------------------------------------

                Dim txtInvolucro As String = "Segue anexo ao presente laudo pericial o documento acima descrito, em "

                If cmbCedula.Text.Equals("invólcuro de segurança") Then
                    txtInvolucro = txtInvolucro & "invólucro de segurança nº " & txtInvolucroIC.Text
                Else
                    txtInvolucro = txtInvolucro & cmbInvolucro.Text
                End If
                txtInvolucro = txtInvolucro & "."
                oWord.FindAndReplacement("<<involucro>>", txtInvolucro.ToString)
                oWord.criaAssinatura(ucPreambulo)
                oWord.Save()
                oWord.Quit()
                pb.stepBarra(10, "Finalizando o arquivo")

                '-----------------------------------------------------------------------------------------------------------------------
                ' CHAMA ROTINA PARA LIMPAR CAMPOS DO CONTROLE E DO DATAGRID VIEW
                '-----------------------------------------------------------------------------------------------------------------------

            Catch exc As Exception
                generica.encerraProcessosWord()
                generica.gravaErro(exc)
                erroNivel = 2
                Exit Sub
            End Try
        Else

            '----------------------------------------------------------------------------------------------------------------------------
            ' CASO SEJA UM ARQUIVO QUE JÁ SE ENCONTRA CADASTRADO NA BASE DE DADOS
            '----------------------------------------------------------------------------------------------------------------------------
            If registroGlobal.registroPincipal.ID_REGISTRO > 0 And registroGlobal.registroPincipal.GEROULAUDO Then
                habilita(False)
                mensagem = ("O laudo n° " & ucPreambulo.getNumeroLaudo & "/" & ucPreambulo.getAno & " já existe registrado na base de dados.Clique no ícone do WORD para visualizar o laudo.")
            Else
                mensagem = ("O laudo n° " & ucPreambulo.getNumeroLaudo & "/" & ucPreambulo.getAno & " não foi encontrado na base de dados.")
            End If
        End If
        MsgBox(mensagem)
    End Sub

    Private Sub habilita(ByVal habilita As Boolean, _
                         Optional ByVal habilitaBarra As Boolean = Nothing, _
                         Optional ByVal habilitaVerWord As Boolean = Nothing, _
                        Optional ByVal vergrupoCNH As Boolean = Nothing, _
                               Optional ByVal habilitaGrupoCNH As Boolean = Nothing, _
                               Optional ByVal habilitaUCNatureza As Boolean = Nothing)




        If Not IsNothing(habilitaVerWord) Then
            ucPreambulo.btnVerWord.Visible = habilitaVerWord
        Else
            ucPreambulo.btnVerWord.Visible = Not habilita
        End If

        ucPreambulo.btnGeraLaudo.Enabled = habilita
        ucPreambulo.habilitaCampos(habilita)
        ucPreambulo.selecionaIdTipoPericia = 3
        ucPreambulo.selecionaIdNatureza = ucPreambulo.ID_NATUREZA
        If Not IsNothing(habilitaUCNatureza) Then
            ucPreambulo.pnlNatureza.Enabled = habilitaUCNatureza
        End If

        If Not IsNothing(habilitaBarra) Then
            pb.Visible = habilitaBarra
            pb.zeraContador()
        End If

        grpCedula.Visible = habilita
    End Sub

    Private Sub btnGerarLaudo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Dim isOk As Boolean = False
        Try
            If (generica.validaCampos(ucPreambulo)) Then
                geraLaudo()
            End If
        Catch ex As Exception
            generica.gravaErro(ex)
        End Try
    End Sub

    Private Sub btnLimpa_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Try
            ucPreambulo.limparCampos()
        Catch ex As Exception
            generica.gravaErro(ex)
        End Try
    End Sub

    Private Sub btnWord_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Try
            If registroGlobal.registroPincipal.NUM_REGISTRO > 0 And registroGlobal.registroPincipal.GEROULAUDO Then
                generica.visualizaWord(nomeDiretorio, nomeDiretorio & ".doc")
            Else
                generica.visualizaWord(nomeDiretorio, nomeDiretorio & ".doc")
            End If
        Catch ex As Exception
            generica.gravaErro(ex)
        End Try
    End Sub

    Private Sub chamaEventoLimpaCampos(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ucPreambulo.onClickLimpaCampos
        Try

            ucPreambulo.populaDados()
            habilita(True, False, False, True, True, False)

        Catch ex As Exception
            generica.gravaErro(ex)
        End Try
    End Sub
    Private Sub chamaEventoGeraLaudo(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ucPreambulo.onClickGeraLaudo
        For Each controle In grpCedula.Controls
            erro.SetError(controle, String.Empty)
        Next

        Try
            'COPIAR ESTE TRECHO
            Dim regBO As New registroBO
            Dim registroVOTemp As New registroVO
            Dim novoRegistro As Integer = 0
            registroVOTemp = regBO.getRegistroSimplificado(ucPreambulo.getNumeroLaudo, ucPreambulo.getAno)

            If registroVOTemp.NUM_REGISTRO > 0 And registroVOTemp.GEROULAUDO And ucPreambulo.ehNovo Then
                novoRegistro = regBO.getUltimoRegistro
                MsgBox("Laundo n° " & registroVOTemp.NUM_REGISTRO & " já foi inserido na base de dados por outro usuário logado no sistema. O laudo será gerado com o número " & novoRegistro)
                ucPreambulo.getNumeroLaudo = novoRegistro

            ElseIf registroVOTemp.NUM_REGISTRO > 0 And registroVOTemp.GEROULAUDO Then
                MsgBox("Laundo n° " & registroVOTemp.NUM_REGISTRO & " já foi atualizado na base de dados por outro usuário logado no sistema.")
                Exit Sub
            End If

            'FIM DO TRECHO

            If (generica.validaCampos(ucPreambulo)) Then
                If gridCedulas.Rows.Count = 0 Then
                    MsgBox("Adicione pelo menos uma substância na lista")

                Else
                    habilitaPainelInferior(False)
                    exibeInvolucro()
                End If
            End If
        Catch ex As Exception
            generica.gravaErro(ex)
        End Try
    End Sub
    Private Sub habilitaPainelInferior(ByVal habilita As Boolean)
        grpCedula.Enabled = habilita

    End Sub

    Private Function validaCampos() As Boolean

        Dim ok As Boolean = False

        Try
            If txtQtde.Text.Equals(String.Empty) Then

                erro.SetError(txtQtde, "Campo obrigatório")
            ElseIf cmbCedula.SelectedIndex = -1 Then
                erro.SetError(cmbInvolucro, "Campo obrigatório")
            ElseIf txtNumeracao.Text.Equals(String.Empty) Then
                erro.SetError(txtNumeracao, "Campo obrigatório")
            Else
                ok = True
            End If

        Catch ex As Exception
            generica.gravaErro(ex)
        End Try
        Return ok

    End Function

    Private Sub chamaEventoVisualizaWord(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ucPreambulo.onClickVisualizaWord
        Try
            If registroGlobal.registroPincipal.NUM_REGISTRO > 0 And registroGlobal.registroPincipal.GEROULAUDO Then
                generica.visualizaWord("", "", registroGlobal.registroPincipal.NOME_DIRETORIO)
            Else
                generica.visualizaWord(nomeDiretorio, nomeDiretorio & ".doc")
            End If
        Catch ex As Exception
            generica.gravaErro(ex)
        End Try
    End Sub
    Public Sub limpa()
        Try
            txtQtde.Text = String.Empty
            cmbCedula.SelectedIndex = -1
            txtNumeracao.Text = String.Empty

        Catch ex As Exception
            generica.gravaErro(ex)
        End Try
    End Sub
    Private Sub chamaEventoNovoLaudo(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ucPreambulo.onClickNovoLaudo
        Try
            ucPreambulo.limparCampos()
            limpa()
            ucPreambulo.populaDados()
            habilita(True, False, False, True, True)
        Catch ex As Exception
            generica.gravaErro(ex)
        End Try
    End Sub


    Public Sub chamaEventoBuscaLaudo(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ucPreambulo.onClickBuscaLaudo
        Try

            ucPreambulo.getIdNatureza = ucPreambulo.ID_NATUREZA
            limpa()
            ucPreambulo.buscaDadosLaudo(ucPreambulo, Me.MdiParent)
            If registroGlobal.registroPincipal.ID_REGISTRO > 0 And registroGlobal.registroPincipal.GEROULAUDO Then

                habilita(False, , True, True)
            Else
                habilita(True, False, False, True, True)
            End If
        Catch ex As Exception
            generica.gravaErro(ex)
        End Try
    End Sub
    Private Sub txtImpresso_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)
        If Not (Char.IsNumber(e.KeyChar) Or e.KeyChar.Equals(Sep) Or Char.IsControl(e.KeyChar)) Then e.Handled = True
    End Sub

    Private Sub txtRegistro_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)
        If Not (Char.IsNumber(e.KeyChar) Or e.KeyChar.Equals(Sep) Or Char.IsControl(e.KeyChar)) Then e.Handled = True
    End Sub
    Private Sub cmbDetran_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)
        e.Handled = True
    End Sub
    Private Sub cmbCategoria_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)
        e.Handled = True
    End Sub
    Private Sub cmbGrafica_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)
        e.Handled = True
    End Sub
    Private Sub txtImpresso_KeyPress1(sender As Object, e As KeyPressEventArgs)
        If Not (Char.IsNumber(e.KeyChar) Or e.KeyChar.Equals(Sep) Or Char.IsControl(e.KeyChar)) Then e.Handled = True
    End Sub

    Private Sub txtQtde_KeyPress(sender As Object, e As KeyPressEventArgs) Handles txtQtde.KeyPress
        If Not (Char.IsNumber(e.KeyChar) Or e.KeyChar.Equals(Sep) Or Char.IsControl(e.KeyChar)) Then e.Handled = True
    End Sub

    Private Sub txtRegistro_KeyPress1(sender As Object, e As KeyPressEventArgs)
        If Not (Char.IsNumber(e.KeyChar) Or e.KeyChar.Equals(Sep) Or Char.IsControl(e.KeyChar)) Then e.Handled = True
    End Sub

    Private Sub btnAdicionar_Click(sender As Object, e As EventArgs) Handles btnAdicionar.Click
        Dim gravar As Boolean = True
        Dim substancia As New StringBuilder
        Dim exames As New StringBuilder
        Dim plural As Boolean = False

        Try

            If CInt(txtQtde.Text) > 1 Then
                plural = True
            Else
                plural = False
            End If

            If validaCampos() Then
                If plural Then
                    substancia.Append(txtQtde.Text).Append(" (").Append(generica.NumeroToExtenso(CInt(txtQtde.Text), True)).Append(") ")
                    substancia.Append("cédulas com valor impresso de ")
                Else
                    substancia.Append("01 (uma) ")
                    substancia.Append("cédula com valor impresso de ")
                End If
                substancia.Append(generica.formataNumeroMaterial(cmbCedula.Text)).Append(" (").Append(generica.NumeroToExtenso(cmbCedula.Text.ToString.Remove(0, 2)))
                substancia.Append(") ").Append("e a seguinte numeração ").Append(txtNumeracao.Text).Append(".")

                If rdbFalso.Checked Then

                    If plural Then
                        exames.Append("São falsas as cédulas com valor impresso de ").Append(cmbCedula.Text).Append(", numeração ").Append(txtNumeracao.Text).Append(", uma vez que não possui os elementos de segurança peculiares às notas autênticas.")
                    Else
                        exames.Append("É falsa a cédula com valor impresso de ").Append(cmbCedula.Text).Append(", numeração ").Append(txtNumeracao.Text).Append(", uma vez que não possui os elementos de segurança peculiares às notas autênticas.")
                    End If

                Else
                    If plural Then
                        exames.Append("São autênticas as cédulas com valor impresso de ").Append(cmbCedula.Text).Append(", numeração ").Append(txtNumeracao.Text).Append(", uma vez que não possui os elementos de segurança peculiares às notas autênticas.")
                    Else
                        exames.Append("É autêntica a cédula com valor impresso de ").Append(cmbCedula.Text).Append(", numeração ").Append(txtNumeracao.Text).Append(", uma vez que não possui os elementos de segurança peculiares às notas autênticas.")
                    End If

                End If
                gridCedulas.Rows.Add(substancia, exames, txtQtde.Text, cmbCedula.Text, txtNumeracao.Text, IIf(rdbFalso.Checked, False, True))
                limpaErros()
                limpa()
                txtQtde.Focus()
            End If


        Catch ex As Exception
            generica.gravaErro(ex)
        End Try
    End Sub

    Private Sub limpaErros()
        erro.SetError(txtQtde, String.Empty)
        erro.SetError(cmbCedula, String.Empty)
        erro.SetError(txtNumeracao, String.Empty)

    End Sub

    Private Sub exibeInvolucro()
        Try
            pnlInvolucro.Visible = True
        Catch ex As Exception
            generica.gravaErro(ex)
        End Try
    End Sub
    
    Private Sub cmdOk_Click(sender As Object, e As EventArgs) Handles cmdOk.Click
        pnlInvolucro.Visible = False
        If validaInvolucro() Then
            If (generica.validaCampos(ucPreambulo)) Then
                If gridCedulas.Rows.Count = 0 Then
                    MsgBox("Adicione pelo menos uma cédula na lista")
                Else
                    pb.Visible = True
                    generica.salvaPreambulo(ucPreambulo)
                    geraLaudo()
                    If erroNivel > 0 Then
                        If generica.rollBack(registroGlobal.registroPincipal, nomeDiretorio, erroNivel, ucPreambulo.ehNovo, ucPreambulo) Then
                            MsgBox("O sistema recuperou de um erro grave e nenhuma informação foi gravada. Para registrar um novo laudo, clique em novo laudo")
                            erroNivel = 0
                            ucPreambulo.btnLimpaCampos.PerformClick()
                        End If
                    Else
                        ' ucPreambulo.txtDataEntrada.Enabled = False
                        habilita(False, , True, False, False, True)
                        limpa()
                        gridCedulas.Rows.Clear()
                    End If

                End If
            End If

        Else
            pnlInvolucro.Visible = True
        End If
    End Sub

    Private Function validaInvolucro() As Boolean

        Dim isOk As Boolean = False
        Try
            If cmbInvolucro.Text.Equals(String.Empty) Then
                erro.SetError(cmbInvolucro, "Selecione a forma de acondicionamento")
            Else
                erro.SetError(cmbInvolucro, String.Empty)
                If cmbInvolucro.Text.Equals("invólucro de segurança") Then
                    If txtInvolucroIC.Text.Equals(String.Empty) Then
                        erro.SetError(txtInvolucroIC, "Campo obrigatório")
                    Else
                        erro.SetError(txtInvolucroIC, String.Empty)
                        isOk = True
                    End If
                Else
                    isOk = True
                End If
            End If
        Catch ex As Exception
            generica.gravaErro(ex)
        End Try
        Return isOk
    End Function

    Private Sub gridCedulas_CellContentDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles gridCedulas.CellContentDoubleClick

        gridCedulas.Rows.Remove(gridCedulas.CurrentRow)
    End Sub
End Class